Transmission of messages related to electronic documents

ABSTRACT

One implementation provides a computer program product tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform a method for processing a message related to an electronic document. The method includes transmitting an electronic document having a unique identifier from a first system to a second system and receiving at the first system a message from the second system related to content contained in the electronic document. The message includes a predetermined field for the unique identifier that links the message to the electronic document. The method may also include notifying a user of the first system that the first system received the message. The notifying may include updating a list of tasks. One of the tasks may indicate that the user may view the received message on the first system.

TECHNICAL FIELD

This application relates to transmitting messages related to electronicdocuments.

BACKGROUND

Companies and their business partners often use digital communicationsto complete business transactions. Some digital communication systemsmay permit business partners, such as outside vendors, to logon to acompany's system to initiate and complete a business transaction. Forexample, some companies may use a system to create and transmitelectronic business documents, such as purchase orders, to a vendor, orsupplier's, system. Vendors may logon to the supplier's system to viewthe business documents, and may have questions about these businessdocuments.

For instance, a vendor may logon to the supplier's system and see abusiness document, such as a purchase order, from the buyer for 300vintage rock concert T-shirts. The vendor may want to clarify the rockbands in which the buyer is interested. To clarify this, the vendor mayask the buyer a question via phone, fax, or e-mail. Alternatively, thevendor may retransmit the entire business document from the supplier'ssystem to the buyer system with the question contained in an appropriatefield. The buyer may respond with an answer in a similar fashion, eitherby retransmitting the business document with clarifying terms, or bycommunicating with the vendor through e-mail, the phone, or fax.

The buyer and vendor may want to communicate for reasons other thanclarification, such as when negotiating terms contained in the businessdocument and adding additional terms to the business document. Thesesituations may also require communication through the methods previouslydescribed.

In other systems, a seller may advertise a product by postinginformation about the product on a web server, such as the product'simage, specifications, shipping terms, and price. Potential buyers maysearch the web server to locate the product and view the product'sinformation using a Web browser. If a buyer has a question about theproduct or the terms of the sale, such as the shipping terms, the buyermay contact the seller using a web interface to send the question to theseller. The seller may receive the question through e-mail, and thequestion may be posted on the web server so that it is publicly viewableto subsequent buyers. The seller may respond to the question by eithere-mailing the questioning buyer and/or publicly posting an answer to theweb site.

For example, a seller may post information about a bundled lot of pocketknives on a web server. Potential buyers may search for and locateinformation about the posted pocket knives. The buyer may then use a webinterface to send to the seller a question about the knives, such as howmany are included in the lot. The question may then be posted to the webserver on a web page, and the seller may receive the message throughe-mail. The seller may respond by posting the answer on the web serverand/or by e-mailing the questioning buyer.

In another system, one or more sellers may upload their inventorydatabase to a peer-to-peer network. A buyer may logon to thepeer-to-peer network and search for a particular product. After findingthe product, the buyer may click on a button to initiate negotiationsfor the product. The system alerts the seller that there is a potentialbuyer willing to negotiate for the purchase of the product. If theseller accepts, the buyer and seller begin a negotiation process guidedby preformatted screens, which allow a real-time chat geared towardsmaking a deal. For instance, they may first agree on the quantityrequired, then the shipping terms, and then the price of the product.Finally, the seller has the option to accept the purchase order and/orissue an invoice or reject the deal.

SUMMARY

One implementation provides a computer program product tangibly embodiedin an information carrier. The computer program product includesinstructions that, when executed, perform a method for processing amessage related to an electronic document. The method includestransmitting an electronic document having a unique identifier from afirst system to a second system and receiving at the first system amessage from the second system related to content contained in theelectronic document. The message includes a predetermined field for theunique identifier that links the message to the electronic document. Themethod may also include notifying a user of the first system that thefirst system received the message. The notifying may include updating alist of tasks. One of the tasks may indicate that the user may view thereceived message on the first system.

In selected embodiments, the computer program product may also includetransmitting a second message from the first system to the secondsystem. The second message may include a predetermined field containingthe unique identifier that links the second message to the electronicdocument. The computer program product may also include maintaining ahistory for the electronic document using the unique identifier that isincluded in each message. The history may include each messagetransmitted by the first and second systems. The history may be visuallydisplayed when the electronic document is accessed.

In a second general aspect, a method includes transmitting an electronicdocument having a unique identifier from a first system to a secondsystem and receiving at the first system a message from the secondsystem that relates to content contained in the electronic document. Themessage includes a predetermined field containing the unique identifierthat links the message to the electronic document.

In a third general aspect, a system includes a system that is programmedto transmit an electronic document having a unique identifier from afirst system to a second system and receive at the first system amessage from the second system that relates to content contained in theelectronic document. The message includes a predetermined fieldcontaining the unique identifier that links the message to theelectronic document.

Advantages of the systems and techniques described herein may includeany or all the following: improving the consistency and transparency inthe communications between business partners; conveniently summarizingthe negotiations and clarifications concerning a business document;decreasing the bandwidth required for business transactions; preventinginformation loss; eliminating the need to send entire business documentsduring negotiations; eliminating the need to create multiple versions ofbusiness documents when inconsequential terms are modified, added, ordeleted; efficiently and conveniently storing information related anunderlying business transaction; permitting convenient modification ofinformation relating to a business document; and eliminating the need touse multiple mediums to exchange information related to a businessdocument.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages of the various implementations will be apparentfrom the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of one implementation of a system that cantransmit a message related to an electronic business document.

FIG. 2 is an example of a user interface (UI) for transmitting andreceiving messages that may be generated by the system shown in FIG. 1.

FIG. 3 is a block diagram with further details of the system shown inFIG. 1, according to one implementation.

FIG. 4 is a flowchart of one implementation for transmitting andreceiving messages.

FIG. 5 is a block diagram of a general computer system.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of one implementation of a system 100 that canprocess a message related to an electronic business document. The system100 includes a first system 102 and a second system 104. The firstsystem 102 may be a buyer system, and the second system 104 may be aseller system. For example, a person who wishes to submit a purchaseorder may use the buyer system and a person who wishes to fulfill thepurchase order may use the seller system. (Alternatively, the firstsystem 102 may be a seller system, and the second system 104 may be abuyer system.) The first system 102 may transmit the business document106 to the second system 104. This transmission is represented by anarrow 109. The business document 106, for example, may be a purchaseorder, a request for bids, an acceptance document, a sales order, or anadvanced shipping notification. The business document 106 includes abusiness identifier 108. The business identifier 108 is unique for eachbusiness document and identifies the business document 106 or an itemwithin the document 106.

The second system 104 receives the business document 106 and may respondby transmitting a message 110 to the first system 102. The transmissionof the message from the second system 104 to the first system 102 isrepresented by the arrow 111. The message 110 may be related to thecontents of the business document 106. For example, if the businessdocument 106 is a purchase order for 500 live clown fish, a user of thesecond system 104 may send the message 110 that indicates only 450 clownfish are available. The second system 104 may also be configured toautomatically scan, or search, content of the received business document106 and determine an appropriate message to send. For example, thesecond system 104 may implement a scanning algorithm (explained ingreater detail below) that searches the purchase order, retrieves therequested item and quantity (500 clown fish), and queries a database todetermine if 500 clown fish are available. If enough fish are in stock,the second system 104 may generate a message to send to the first system102 that indicates the full order may be filled. Otherwise, if only 450fish are available, the second system 104 may generate a messageindicating that only 450 fish are available.

Additionally, the message 110 includes a predetermined field 112specifically for the business identifier 108 that links the message 110to the business document 106 that was received. In one implementation,the second system 104 may extract the business identifier 108 from thebusiness document 106 when it is received and may populate the field 112with the identifier 108 before the message 110 is transmitted.

The business identifier 108 permits both the first system 102 and thesecond system 104 to associate the message 110 with the businessdocument 106. This allows correct association when different businessdocuments and associated messages are sent between the first and secondsystems 102, 104. For example, if one transmitted business document is apurchase order and a second transmitted business document is an invoiceorder, the unique business identifiers for each document permit themessages sent in response to the invoice order to be associated with theinvoice order, and the message sent in response to the purchase order tobe associated with the purchase order. Using the business identifier 108also permits each system 102, 104, to retrieve all the messagesassociated with a particular business document. For example, if a userof the first system 102 accesses the business document 106, the message110 may also be retrieved from a message storage 107 and displayed withthe document 106. The second system 104 may also permit access andretrieval of the message 110 and the business document 106 from a secondmessage storage (not shown) in a similar fashion.

The first system 102 receives the message 110 from the second system104, and notifies a user 114 of the first system 102 that the system 102received the message 110. This notification is represented by the arrow116. The notification may indicate that an event associated with thebusiness document 106 has occurred. Additionally, the notification mayoffer a preview or the full text of the message that was received. Thenotification may include a link to the business document 106 or to themessage 110 which the user may select to access the document or message.The notification may include an e-mail sent to the user 114, updating anapplication of the user 114 to reflect that the message has beenreceived, an audio alert, a visual alert, or any combination thereof.For example, the notification may cause an application of the user 114to sound an audible alert and present a window that includes textdescribing the affected business document, the first few lines of themessage, and the sender of the message.

The notification may occur immediately after the first system 102receives the message 110, or at a set or triggered time later. Forexample, if the notification is not performed immediately after thefirst system 102 receives the message 110, the notification may betriggered when the user 114 logs onto the first system 102. When theuser logs on, the first system 102 may then transmit a notification toan application of the user 114, which indicates that a message has beenreceived. Alternatively, the user 114 may receive a notification of anymessages received on hourly, daily, and weekly basis. For example, thefirst system 102 may regularly send out notifications to the user everyfive minutes, or an application of the user may query the first system102 every five minutes to determine if a message has been received. Ifthe query returns an affirmative response, a notification may be sentfrom the first system 102 to the user 114.

The first system 102 and the second system 104 may be implemented asseparate computing devices, which may be geographically separated orhoused together. The transmissions 111, 109, and 116 may occur oversingle or multiple transmission lines, which may be part of a privatenetwork, the Internet, or any combination thereof. The transmissions mayalso take place over a wireless network, such as an 802.11 network or aBluetooth network. The user 114 may employ a separate computing devicethat communicates with the first system 102 or may use the computingdevice on which the first system 102 is implemented. Alternatively, thefirst system 102 and the second system 104 may be implemented on acommon computing device. The transmissions 111 and 109 may be internalto the common computing device on structures, such as a system bus,Peripheral Component Interconnect (PCI) bus, and a shared memory.

FIG. 2 is an example of a user interface (UI) 200 for transmitting andreceiving messages that may be generated by the system 100 shown inFIG. 1. The UI 200 may be implemented at a first computing device 202,which may be employed by the user 114. The UI 200 may be displayed on amonitor (not shown) of the first computing device 202. The UI 200 mayprovide a graphical means for communicating with the first system 102.In the example shown in FIG. 2, the UI 200 contains several componentsincluding a navigation pane 204, a business document title 206, ageneral information section 208 that contains details that areapplicable to the entire business document, a business document itemssection 210 that contains details that are applicable to specific itemswithin the business document, and the communications section 212 thatdisplays received messages and provides an interface for inputtingmessages for transmission.

Additionally, the UI 200 may also be implemented at a second computingdevice, which communicates with the second system 104. Users of both thefirst and the second systems 102, 104 may use the UI 200 to input andview messages related to a particular business document.

In FIG. 2, the navigation pane 204 includes several subsections, such assearch orders 214, invoices 216, confirmations 218, and advance shippingnotifications 220. Each subsection may permit the user 114, or a user ofthe second system 104, to navigate to a desired business document. Forexample, the user 114 may select the new orders link 222 to searchbusiness documents that are categorized as new orders. Selecting the neworders link 222 may cause the navigation pane to expand so thatadditional criteria may be entered to filter the results of the search.Alternatively, a new screen may be displayed in a section outside of thenavigation pane that permits inputting additional filter criteria.Similarly, the rejected orders link 224 and the accepted orders link 226may be selected by a user to facilitate location of a particular order.

The invoices 216, confirmations 218, and advance shipping notifications220 sections may be employed by a user to locate business documentscategorized as invoices, confirmations, and advance shippingnotifications, respectively. For example, a user may select the unpaidinvoices link 228 or the paid invoices link 230 within the invoicessection 216 to initiate a search or filter to locate an unpaid or paidinvoice business document, respectively. Similarly, a user may selectlinks (not shown) within the confirmations 218 and advance shippingnotifications 220 sections to locate or access business documentsrelated to sales, order confirmations, and shipping details.

The business documents that are located using the navigation pane may becreated on the first computing device 202, or may be created on aseparate computing device. For example, if the business document is apurchase order, it may be created by a specific department, such as theengineering department. The engineering department may maintain adatabase on a separate computing device that is queried by the firstcomputing device 202 to locate the purchase order, or the separatecomputing device may transmit the business document to a central storagearea where all or some of the business documents are stored. The firstcomputing device 202 may then query the central storage area to locatethe desired business document.

After the desired business document is located and accessed, it isdisplayed within the UI 200. In FIG. 2, for example, to view a newpurchase order that has not been accepted yet, a user may select the neworders link 222 within the search orders section 214 of the navigationpane 204. The selection may bring up additional screens or modifyexisting screens (not shown) for entering additional search criteria,such as the date the purchase order was issued, to whom it was issued,and the business document identifier. After a user has inputted thedesired criteria, the new purchase order may be located, accessed, anddisplayed.

In FIG. 2, the business document title 206 is displayed as purchaseorder A. The general information section 208 contains information aboutpurchase order A, such as the date issued 232, the issuing department234, and the business document number 236. In this example, the purchaseorder A was issued Mar. 4, 2004 by the engineering department and wasassigned a business document number 77764.

The business document items section 210 contains information aboutspecific items within the purchase order A. For example, in FIG. 2, thepurchase order items include a request for hard drives. The section 210may contain an item description 238 that lists the item as a hard drive.The section 210 also may contain the item quantity 240, the price 242,the requested delivery date 244 for the item, and the item number 246.In this example, the purchase order is for 500 hard drives at a price of$100 each for delivery by May 5, 2005. The item number 246 is unique foreach item within a business document, and permits messages to beexchanged regarding a single item within a business document, which willbe discussed in more detail below. In the example shown in FIG. 2, theitem number 246, which is 404, is uniquely associated with the requestfor hard drives. If there was a separate request item for motherboards,the item may have a different item number, such as 421.

When a business document is displayed, the communications section 212may also be viewed. The communication section 212 may have a text entrybox 248 for inputting messages related to the business document that isdisplayed. For example, the user may select the text entry box 248 witha pointing device, , such as a mouse, and input a message with an I/Odevice, such as a keyboard. After the user has typed the message, theuser may select a submit button 250, which may submit the message to thefirst system 102 for transmission of the message to the second system104.

The user may also input the messages by other means, such as voicerecognition software or selection of predetermined messages from adrop-down box. For example, in addition to the submit button, there mayalso be a record button. The user may speak into a microphone that isattached to the computing device. Speech recognition software may acceptthe recorded message, translated the message into text, and insert itinto the text entry box 248 or directly submit it to the first system102. If a drop-down box is used, the box may contain several commonlyentered messages from which a user may select. For example, commonmessages may include “the order is rejected,” “the order is accepted,”“shipping will take place within three business days,” and “modifiedterms are acceptable; please deliver according to agreed-upon terms.”

The communication section 212 may also include a history subsection 252.The history subsection 252 may include each message that is associatedwith the displayed business document. For example, in FIG. 2, the firstmessage 254 includes the date 256 the message was sent, the time 258 themessage was sent, and the source 260 of the message, which is thesupplier. The first message 254 also includes the following message text262: “Need more information about item 404. Some changes were made toour system. See attachment.” The message may also include an attachmentlink 263. The user may select the attachment link 263 to access anattachment that is linked to the message. In this example, the user mayselect the attachment link 263 to access a text document that describeschanges that were made to the suppliers system. Other types ofattachments may be linked to the message, such as sound file, a videofile, an image file, a spreadsheet, an e-mail, a slide presentation, anda design file.

The history section 252 may contain multiple messages that have beensent between the first and second systems 102, 104. For example, in FIG.2, three messages are displayed. The messages may represent a completehistory of negotiations, clarifications, and/or additional supplementalterms related to the business document. In the first message 254, thesupplier asked for additional information about item 404, which is thehard drive item, and informed the buyer of changes made to supplier'ssystem. In the second message 264, the buyer acknowledges themodifications are “OK,” and directs the supplier to an attachment link265 within the message for clarification on the item 404. In the thirdmessage 266, the supplier agrees to fill the order and deliver inapproximately seven days. Each message may display who sent the messageand the date and time it was sent. The messages may be listed inchronological order with the earliest sent message either displayedfirst or last. The messages may also be sorted by message source orbased on the presence of attachments.

The first computing device 202 or the first system 102 may determinewhich messages to display in the history section 252 based on whetherthe business identifier 108 contained within the predetermined field 112of each message matches the business identifier of the displayedbusiness document. For example, in FIG. 2, the business identifier forthe purchase order A is the document number 236, which is 77764. Each ofthe messages displayed in the history section 252 contains a documentnumber which matches 77764 (not shown). The business identifier of eachmessage and of the business document may or may not be visible to theuser. Messages with business identifiers that do not match the businessdocument may not be displayed.

The communications section 212 may be minimized to view a larger portionof the business document. The user may select a minimization link orbutton (not shown) to minimize the section 212 and select a maximizationlink or button (also not shown) to maximize the section 212.

FIG. 3 is a block diagram with further details of the system 100 shownin FIG. 1, according to one implementation. FIG. 3 includes the firstsystem 102 and the second system 104, each of which may transmit andreceive one or more business documents and messages. The first computingdevice 202 may communicate with the first system 102, and a secondcomputing device 300 may communicate with the second system 104. Thecomputing devices 202, 300 may be employed by users to input and viewmessages and business documents transmitted between the first and secondsystems 102, 104. FIG. 3 also shows the message storage 107, which maycontain a history of messages sent between the first and second systems.

In one implementation, the second system 104 is a seller system and thefirst system 102 is a buyer system. The seller system 104 may be used byvendors to determine whether a buyer needs an item. The buyer system maybe used to transmit requests for items, such as purchase orders to theseller system. For example, business document A 304 may be a purchaseorder that is transmitted from the first system 102, or buyer system, tothe second system 104, or seller system. A copy of the business documentA 304 may be stored on the second system 104 (not shown). The businessdocument A 304, contains a business identifier 108 that uniquelyidentifies the business document. The business identifier 108 mayinclude identifiers, such as a document number 307 and an item number309. The document number 307 may represent an identifier that refers tothe entire business document, and item number 309 may represent anidentifier that specifies a particular item or a group of items that areincluded in the business document. For example, the business documentmay be a purchase order, which may have a document number that specifiesthe entire purchase order. The purchase order may contain requests forseveral items, such as hard drives, motherboards, and power supplies.The hard drives may have one item number, the motherboards another itemnumber, and the power supplies a third item number.

A vendor using the second computing device 300 may use a browser 306 tologon to the second system 104. This initial request for access andestablishment of connection is represented by the double headed arrow308. Once logged on, the browser 306 may display a user interfacesimilar to the UI 200. The vendor may use the new orders link 222 in thenavigation pane 204 to locate any new purchase orders that the vendormay fill. The business document A 304, which in this case is a newpurchase order, may be located on the second system 104, accessed,transmitted to the second computing device 300, and displayed on the UI200 using the browser 306. If the vendor accessed the purchase order Afor 500 hard drives, as shown in FIG. 2, the vendor could input amessage A 310, which states that only 495 hard drives are available andasks the buyer if this is acceptable. After the message is entered, thevendor could press the submit button 250 to send the message to thefirst system 102. A copy of the message A 310 may then be sent from thesecond system 104 to the first system 102 as represented by the arrow111.

The messages and business documents sent between the first and secondsystems 102, 104 may be implemented in XML (Extensible Markup Language).The business documents may contain more tags, or predetermined fields,and information than the messages. Because the messages contain lessinformation and fields, they may be significantly smaller than thebusiness documents, which allows the messages to be transmitted quicklyand with less bandwidth than the business documents. Additionally, theuse of messages may isolate specific terms of a business document thatare added, clarified, or negotiated, which may make the transactionprocess more transparent when compared to determining these changes byviewing multiple versions of the entire business document. Thepresentation of a history of messages can be a succinct method tosummarize the communications related to a business transaction.

Before the message is sent, the business identifier 108 contained withinthe business document A 304 may be used to populate the predeterminedfield 112 within the message A 310. In one implementation, thepredetermined field 112 may be an XML tag, or markup code. For example,if the business identifier 108 is the business object number, thepredetermined field 112 may be an XML tag with the descriptor “businessobject number.” The second computing device 300 may search the copy ofthe business document A 304 that is displayed on the browser 306 andretrieve the business identifier 108. The business identifier 108 maythen be inserted in the predetermined field 112 of each messagetransmitted that is specifically related to the business document fromwhich the business identifier 108 was retrieved. Alternatively, thesecond system 104 may implement a search algorithm to search thebusiness document A 304 for the business identifier 108. The searchalgorithm may be programmed to recognize particular fields within thebusiness document using a list of field names stored on the system 104and retrieve the values contained within those fields, such as thebusiness identifier 108. After the second system 104 retrieves thebusiness identifier 108, it may then insert the identifier 108 in thepredetermined field 112 of the message A 310.

In addition to the business identifier 108 contained in thepredetermined field 112, a message may contain other information.Referring to FIG. 3, the message A 310 includes time 312, date 314, andsource information 316. The time 312 and date 314 information may be thetime and date the message A 310 is sent, and the source information 316may be the user that sent the message, such as the supplier or buyer.The message A 310 may also include message text 318, which may beadditional terms 320, clarifying terms 322, and negotiating terms 324.For example, additional terms 320 may be further requirements thatpertain to shipping that were not described in the business document.The clarifying terms 322 may be requests to clarify information in thebusiness document, and the negotiating terms 324 may be proposed changesin the terms of the business document.

In one implementation, the message a 310 may include one or moreattachments. As shown in FIG. 3, the attachment 326 is linked to themessage A 310 as represented by the line 328. The attachment 326 may beaccessed by a link or button contained within the message A 310, or itmay be displayed in a subsection of the message A 310 when the messageis viewed by the user. The attachment may include files, such as a textdocument, a sound file, a video file, an image file, a spreadsheet, ane-mail, a slide presentation, and a design file.

Alternatively, when the second system 104 receives the business documentA 304, the system 104 may respond to the business document automaticallyusing a message generator 348. The message generator 348 may be softwareimplemented at the second system 104 that responds to incoming messagesfrom the first system 102. The message generator 348 may containinstructions that when executed search particular fields within theincoming business document using a pattern recognition algorithm, querya database (not shown), and generate a message based on the content ofthe fields. For example, if the business document A 304 is a purchaseorder for 500 hard drives, the message generator 348 may search thebusiness document A for predetermined fields that contain the itemdescription and the item quantity. The generator 348 may accomplish thesearch by comparing the label for each of the predetermined fields witha set of searching labels (not shown) stored on the second system 104.For instance, the set of searching labels may include a searching label“item description.” The generator 348 compares the labels for each ofthe predetermined fields with the searching label “item description”until a predetermined field with matching text is found. Once a matchinglabel is found, the generator 348 may retrieve the value, orinformation, contained within the predetermined field associated withthe matching label.

After retrieving this information, the message generator 348 may query alocal database and determine if the supplier has such an item andwhether the supplier has enough quantity to satisfy the purchase order.If the supplier does have the item and enough quantity, the messagegenerator 348 may generate a message accepting the purchase order. Ifthe supplier does not have the item or does not have enough of the item,the generator 348 may generate a message indicating this and suggest asubstitution or asking if a reduced quantity is acceptable. For example,if the supplier only has 495 flash drives instead of 500 hard drives,the message generator 348 may respond with a message asking if adelivery of 495 flash drives would be acceptable.

After the message A 310 is received by the first system 102, the system102 may send a notification 330 that the message has been received tothe first computing device 202. The transmission of the notification 330is represented by the arrow 116. The notification may be an e-mail thatis sent to an e-mail client 332 implemented at the first computingdevice 202. The e-mail may contain a link to access the businessdocument A 304 and the related message A 310. The e-mail may alsoinclude the contents of the message, such as the text 318, the time 312,the date 314, and the source 316 of the message. The notification 330may also update a list of tasks 334 that is displayed within anapplication executed on the first computing device 202. The tasks 334may include “to do” items, such as project deadlines, alerts,assignments for completion, and appointments. The notification 330 maycause the computing device 202 to add an alert 335 to the tasks 334 thatinforms the user that a message has been received concerning aparticular business document. The alert 335 may contain a link to accessthe business document and related message. The application that displaysthe alert may be a browser 336.

The message generator 348 may work in cooperation with the notificationmethod described above or in place of it. The message generator 348 maycontain a set of rules that dictate whether the notification 344 may besent to the second computing device 300. For example, if the supplier'savailable quantity of an item differs by more than three percent of therequested quantity of item, then the notification 344 would be sent.Otherwise, the message generator 348 would automatically generate amessage asking if the reduced quantity would be acceptable to the buyer.

In one implementation, the user of the first computing device 202 may bepresented with a user interface similar to the UI 200 shown in FIG. 2when the user accesses the business document A 304. The user may viewthe first message 254 sent from the supplier, and may enter a message B338 in the text entry box 248. A copy of the message B 338 may betransmitted from the first computing device 202 to the first system 102as represented by the arrow 340. The message B 338 may then betransmitted from the first system 102 to the second system 104 asrepresented by the arrow 342. The message B 338 also contains thepredetermined field 112 populated with the business identifier 108. Thebusiness identifier 108 may be retrieved and inserted in the message B338 similar to the method earlier described.

After the message B 338 is received by the second system 104, the system104 may send a notification 344 to the second computing device 300 asrepresented by the arrow 346. The notification 344 may be accomplishedin a similar manner to the notification 330 sent to the first computingdevice 202.

The first and second systems 102, 104 may continue to transmit andreceive messages until an agreement is reached regarding the businessdocument. The systems 102, 104 may also send additional or revisedbusiness documents based on the messages. For instance, if businessdocument A 304 is a purchase order, an agreement may be reached, basedon the exchange messages, that the supplier will fulfill the purchaseorder. A business document B 350, which may be an acceptance document,may then be sent from the first system 102 to the second system 104.Messages may also be sent in response to this new business document. Forexample, the second system 104 may send a message acknowledging thereceipt of the agreement business document. Additionally, the secondsystem 104 may send a business document C 352 in response to messages orbusiness documents the system 104 receives. For example, if an agreementis reached to fulfill a purchase order document, the system 104 may sendthe business document C 352, which may be an invoice order for thefulfilled purchase order.

The second system 104 may communicate with multiple computing devices,such as the second computing device 300, and a third computing device300 b through an Nth computing device 300 n. Each of these computingdevices may be vendors, or suppliers. The vendors may be able to accessthe same business documents on the second system 104, or the vendors maybe limited to only view a subset of the business documents, such asbusiness documents related to the inventory they carry or businessdocuments specifically addressed to them.

If multiple vendors are able to view the same business document they mayindependently send messages which contain bidding or negotiating termsbased on the business document. For example, if the vendors are viewinga purchase order, they may submit messages containing their price quote.Additionally, if each vendor employs a user interface, such as the UI200 in FIG. 2, each vendor may be restricted from viewing messages sentby other vendors. Each message sent by the vendor may contain a vendoridentifier (not shown) that is used to filter the messages that aredisplayed to the vendors so that a vendor may only see messages thevendor sent along with any responses from the buyer.

The first system 102 may also be able to communicate with multiplecomputing devices, such as the first computing device through computingdevice N (not shown). Each computing device may be employed by user incharge a specific set of business documents. For example, the user ofthe first computing device 202 may be in charge of purchase orders for aparticular department, such as the engineering department. This user'saccess may be limited to business documents originating from orconcerning the engineering department.

Both the first system 102 and the second system 104 may have access tothe message storage 107 that stores the messages transmitted between thetwo systems. The message storage 107 may be implemented as a database atthe first system 102, the second system 104, or a copy the databasecontaining the messages may be maintained at both systems. Additionallythe message storage 107 may be implemented on a separate computingdevice. By accessing the message storage 107, each system may track themessages associated with particular business documents. The systems mayuse the business identifier embedded in each message to associate themessages with the appropriate business documents. For example, in FIG.3, the second system 104 may access message A 354, and message B 358 anddisplay the messages when the business document A 304 is accessed. Thesystem 104 uses the business identifier A 356 that is embedded in bothmessage A 354, and message B 358 to determine that those messages areassociated with the business document A. The message N 364 contains thebusiness identifier C, so the system 104 may determine that it is notassociated with the business document A and should not be displayed. Themessages may be displayed in a manner similar to that shown in thehistory section 252 of FIG. 2.

FIG. 4 is a flowchart 400 of one implementation for transmitting andreceiving messages of the system 100. For example, a computer programproduct may include instructions that cause a processor to performoperations comprising the stages of method 400. As shown in FIG. 4, themethod 400 includes the following stages:

An operation “transmit a business document” is performed in a stage 402.A business document with a unique identifier is transmitted from a firstsystem to a second system. For example, the first system 102 maytransmit the business document A, such as a purchase order, to thesecond system 104. The purchase order contains an identifier, such as adocument number, that permits the purchase order to be uniquelyidentified. The first system 102 may be a system used by buyers and thesecond system 104 may be a system used by sellers.

An operation “receive a message” is performed in a stage 404. The firstsystem receives a message from the second system related to the contentof the business document. The message includes a predetermined field forthe business identifier that links the message to the business document.For example, the first system 102 may receive the message A 310 from thesecond system 104. The message A 310 may be implemented in XML and maycontain a predetermined field, or coded tag, which contains the businessidentifier 108 of the business document A 304, that was previously sentto the second system 104.

An operation “notify a user” is performed in a stage 406. A user of thefirst system is notified that the first system received the message. Forexample, the first system 102 may send a notification 330 to a firstcomputing device 202 that the message a 310 has been received. Thenotification 330 may include an e-mail sent to the user of the firstcomputing device 202. After stage 406, stage 402 may be performed,optional stage 408 may be performed, or the method may end. If stage 402is performed, the first system may transmit a business document aspreviously described. Otherwise, optional stage 408 may be performed.

An optional operation “transmit a message” may be performed in stage408. A second message may be transmitted from the first system to thesecond system. The second message includes a predetermined fieldcontaining the business identifier that links a second message to thebusiness document. After the user accesses the message A 310, the usermay want to respond by sending an additional message B to the secondsystem 104. For example, the message A 310 may indicate that the vendor,or user of the second system 104, can only fulfill part of the purchaseorder. The user of the first system 102, or the buyer, may transmit themessage B to the vendor either accepting or rejecting the vendor'sproposal. After stage 408, stage 402 or stage 404 may be performed aspreviously described. Otherwise, the method 400 may end.

FIG. 5 is a block diagram of a general computer system 500. The computersystem 500 can be used in the operations described above, according toone implementation. For example, the system 500 may be included in anyor all of the first system 102, second system 104, first computingdevice 202, second computing device 300, and third computing device 300b through Nth computing device 300 n.

The system 500 includes a processor 502, a memory 504, a storage device506 and an input/output device 508. Each of the components 502, 504, 506and 508 are interconnected using a system bus 510. The processor 502 iscapable of processing instructions for execution within the system 500.In one implementation, the processor 502 is a single-threaded processor.In another implementation, the processor 502 is a multi-threadedprocessor. The processor 502 is capable of processing instructionsstored in the memory 504 or on the storage device 506 to displaygraphical information for a user interface, such as the UI 200 in FIG.2, on the input/output device 508.

The memory 504 stores information within the system 500. In oneimplementation, the memory 504 is a computer-readable medium. In oneimplementation, the memory 504 is a volatile memory unit. In anotherimplementation, the memory 504 is a non-volatile memory unit.

The storage device 506 is capable of providing mass storage for thesystem 500. In one implementation, the storage device 506 is acomputer-readable medium. In various different implementations, thestorage device 506 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device.

The input/output device 508 provides input/output operations for thesystem 500. In one implementation, the input/output device 508 includesa keyboard and/or pointing device. In one implementation, theinput/output device 508 includes a display unit for displaying the UI200.

Various implementations can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. Apparatus can be implemented in a computer programproduct tangibly embodied in an information carrier, e.g., in amachine-readable storage device or in a propagated signal, for executionby a programmable processor; and method steps of the variousimplementations can be performed by a programmable processor executing aprogram of instructions to perform functions of the variousimplementations by operating on input data and generating output. Theimplementations can be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language, including compiled or interpretedlanguages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks, such as internal hard disks andremovable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.The processor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, various implementations can beimplemented on a computer having a display device, such as a CRT(cathode ray tube) or LCD (liquid crystal display) monitor fordisplaying information to the user and a keyboard and a pointing device,such as a mouse or a trackball by which the user can provide input tothe computer.

The various implementations can be implemented in a computer system thatincludes a back-end component, such as a data server, or that includes amiddleware component, such as an application server, such as the firstand second systems 102, 104, or an Internet server, or that includes afront-end component, such as a client computer having the UI 200 or anInternet browser, such as the browser 306, or any combination of them.The components of the system can be connected by any form or medium ofdigital data communication, such as a communication network. Examples ofcommunication networks include, e.g., a LAN, a WAN, and the computersand networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork, such as the described one. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of this application. For example, the stage408 of FIG. 4 may be optional and may lead to stage 402, 404, or end themethod. Additionally, the message storage may be implemented at thefirst system 102, the second system 104, or at an independent computingdevice. Accordingly, other implementations are within the scope of thefollowing claims.

1. A computer program product tangibly embodied in an informationcarrier, the computer program product including instructions that, whenexecuted, perform a method for processing a message related to anelectronic document, the method comprising: transmitting an electronicdocument having a unique identifier from a first system to a secondsystem; and receiving at the first system a message from the secondsystem that relates to content contained in the electronic document,wherein the message includes a predetermined field for the uniqueidentifier that links the message to the electronic document.
 2. Thecomputer program product of claim 1, further comprising notifying theuser of the first system that the first system received the message. 3.The computer program product of claim 2, wherein the notifying includesupdating a list of tasks, one of the tasks indicating that the user mayview the received message on the first system.
 4. The computer programproduct of claim 2, wherein the notifying includes sending an e-mail tothe user.
 5. The computer program product of claim 1, wherein the uniqueidentifier is an electronic document number, and wherein the electronicdocument number is a number uniquely associated with the electronicdocument.
 6. The computer program product of claim 1, wherein the uniqueidentifier is an item number, and wherein the item number is a numberuniquely associated with an item in the electronic document.
 7. Thecomputer program product of claim 1, wherein the method furthercomprises transmitting a second message from the first system to thesecond system, wherein the second message includes a predetermined fieldcontaining the unique identifier that links the second message to theelectronic document.
 8. The computer program product of claim 7, whereinthe method further comprises notifying a user of the second system thatthe second system received the second message.
 9. The computer programproduct of claim 7, wherein the method further comprises maintaining ahistory for the electronic document using the unique identifier that isincluded in each message, and wherein the history includes each messagetransmitted by the first and second systems.
 10. The computer programproduct of claim 9, wherein the history is visually displayed when theelectronic document is accessed.
 11. The computer program product ofclaim 1, wherein a user of the second system inputs the message.
 12. Thecomputer program product of claim 1, wherein the second systemautomatically generates the message.
 13. The computer program product ofclaim 12, wherein the second system generates the message based on thecontent of the electronic document.
 14. The computer program product ofclaim 1, wherein the first system is a seller system and the secondsystem is a buyer system.
 15. The computer program product of claim 1,wherein the method further comprises transmitting a second electronicdocument from the first system to the second system, and wherein thesecond electronic document is a second version of the electronicdocument that incorporates changes prompted by the message received bythe first system.
 16. The computer program product of claim 1, whereinthe message further includes message text, a message source, dateinformation, and time information.
 17. The computer program product ofclaim 1, wherein the second system retrieves the unique identifier fromthe received electronic document and associates the unique identifierwith the message before transmitting the message to the first system.18. The computer program product of claim 1, wherein the method furthercomprises receiving an attachment linked to the message, and wherein theattachment is selected from a group consisting of a text document, asound file, a video file, an image file, a spreadsheet, an e-mail, aslide presentation, and a design file.
 19. A method comprising:transmitting an electronic document having a unique identifier from afirst system to a second system; and receiving at the first system amessage from the second system that relates to content contained in theelectronic document, wherein the message includes a predetermined fieldcontaining the unique identifier that links the message to theelectronic document.
 20. A system that is programmed to: transmit anelectronic document having a unique identifier from a first system to asecond system; and receive at the first system a message from the secondsystem that relates to content contained in the electronic document,wherein the message includes a predetermined field containing the uniqueidentifier that links the message to the electronic document.